package persistent.impl;

import java.util.List;

import basic.HibBaseDAO;
import model.VCloudClassAnecdoteNumber;
import model.VCloudClassAnecdoteStatis;
import model.VCloudGradeAnecdoteStatis;
import model.VCloudSchoolAnecdoteStatis;
import persistent.dao.AnecdoteStatisDAO;

/**
 * 用作轶事类型统计接口实现类，包括年级，班级，学校
 * @author 徐震霖
 * @since 2018-11-18 16:41
 *
 */
public class AnecdoteStatisImpl implements AnecdoteStatisDAO {

	HibBaseDAO dao = new HibBaseDAO();
	
	/**
	 * 根据条件得到所有学校轶事统计
	 * @param steWhere 查询条件
	 * @return 成功返回List<VCloudSchoolAnecdoteStatis>的学校统计对象列表，失败返回null
	 */
	@Override
	public List<VCloudSchoolAnecdoteStatis> getSchoolAnecdoteStatis(
			String steWhere) {
		String hql = "from VCloudSchoolAnecdoteStatis " + steWhere;
		return dao.select(hql);
	}

	/**
	 * 根据条件分页得到所有学校轶事统计
	 * @param steWhere 查询条件
	 * @param currentPage 当前页
	 * @param pageSize 每页条数
	 * @return 成功返回List<VCloudSchoolAnecdoteStatis>的学校统计对象列表，失败返回null
	 */
	@Override
	public List<VCloudSchoolAnecdoteStatis> getSchoolAnecdoteStatisByPage(
			String steWhere, int currentPage, int pageSize) {
		String hql = "from VCloudSchoolAnecdoteStatis " + steWhere;
		return dao.selectByPage(hql, currentPage, pageSize);
	}

	/**
	 * 根据条件得到所有年级轶事统计
	 * @param steWhere 查询条件
	 * @return 成功返回List<VCloudSchoolAnecdoteStatis>的学校统计对象列表，失败返回null
	 */
	@Override
	public List<VCloudGradeAnecdoteStatis> getGradeAnecdoteStatis(
			String steWhere) {
		String hql = "from VCloudGradeAnecdoteStatis " + steWhere;
		return dao.select(hql);
	}

	/**
	 * 根据条件分页得到所有年级轶事统计
	 * @param steWhere 查询条件
	 * @param currentPage 当前页
	 * @param pageSize 每页条数
	 * @return 成功返回List<VCloudSchoolAnecdoteStatis>的学校统计对象列表，失败返回null
	 */
	@Override
	public List<VCloudGradeAnecdoteStatis> getGradeAnecdoteStatisByPage(
			String steWhere, int currentPage, int pageSize) {
		String hql = "from VCloudGradeAnecdoteStatis " + steWhere;
		return dao.selectByPage(hql, currentPage, pageSize);
	}

	/**
	 * 根据条件得到所有班级轶事统计
	 * @param steWhere 查询条件
	 * @return 成功返回List<VCloudSchoolAnecdoteStatis>的学校统计对象列表，失败返回null
	 */
	@Override
	public List<VCloudClassAnecdoteStatis> getClassAnecdoteStatis(
			String steWhere) {
		String hql = "from VCloudClassAnecdoteStatis " + steWhere;
		return dao.select(hql);
	}

	/**
	 * 根据条件分页得到所有班级轶事统计
	 * @param steWhere 查询条件
	 * @param currentPage 当前页
	 * @param pageSize 每页条数
	 * @return 成功返回List<VCloudSchoolAnecdoteStatis>的学校统计对象列表，失败返回null
	 */
	@Override
	public List<VCloudClassAnecdoteStatis> getClassAnecdoteStatisByPage(
			String steWhere, int currentPage, int pageSize) {
		String hql = "from VCloudClassAnecdoteStatis " + steWhere;
		return dao.selectByPage(hql, currentPage, pageSize);
	}

	/**
	 * 根据查询条件得到班级轶事分析列表
	 * @param strwhere 查询条件
	 * @return 成功返回VCloudClassAnecdoteNumber列表，失败返回null
	 */
	@Override
	public List<VCloudClassAnecdoteNumber> getClassAnecdoteNumber(
			String strwhere) {
		String hql="from VCloudClassAnecdoteNumber "+strwhere;
		return dao.select(hql);
	}

	/**
	 * 根据查询条件得到班级轶事分析列表，带分页
	 * @param strwhere 查询条件
	 * @param currentPage 当前页
	 * @param pageSize 每页数
	 * @return 成功返回VCloudClassAnecdoteNumber列表，失败返回null
	 */
	@Override
	public List<VCloudClassAnecdoteNumber> getClassAnecdoteNumber(
			String strwhere, int currentPage, int pageSize) {
		String hql="from VCloudClassAnecdoteNumber "+strwhere;
		return dao.selectByPage(hql, currentPage, pageSize);
	}

}
